package demo3;

import java.util.Arrays;
import java.util.Comparator;

//class Student implements Comparable<Student> {
//    private String name;
//    private int age;
//    public int score;
//
//    public Student(String name, int age, int score) {
//        this.name = name;
//        this.age = age;
//        this.score = score;
//    }
//
//    @Override
//    public int compareTo(Student o) {
//        if (this.age > o.age) {
//            return 1;
//        }else if (this.age < o.age) {
//            return -1;
//        }else {
//        return 0;
//        }
//    }
//
//    @Override
//    public String toString() {
//        return "Student{" +
//                "name='" + name + '\'' +
//                ", age=" + age +
//                ", score=" + score +
//                '}';
//    }
//}
//public class Test {
//    public static void main(String[] args) {
//        Student[] students= new Student[3];
//        students[0] = new Student("James", 31, 90);
//        students[1] = new Student("Bob", 32, 80);
//        students[2] = new Student("John", 33, 70);
//        Arrays.sort(students);
//        System.out.println(Arrays.toString(students));
//    }
//}

//public class Test {
//    public static void main(String[] args) {
//        int[] arr= {9,8,7,6,5,4,3,2,1,0};
//        Arrays.sort(arr);
//        System.out.println(Arrays.toString(arr));
//    }
//}


//class Student implements Comparable<Student> {
//    public String name;
//    public int age;
//    public int score;
//
//    public Student(String name, int age, int score) {
//        this.name = name;
//        this.age = age;
//        this.score = score;
//    }
//
//    @Override
//    public int compareTo(Student o) {//谁调用compareTo谁就是this
//        if(this.age > o.age) {
//            return 1;
//        }else if(this.age < o.age) {
//            return -1;
//        }else {
//            return 0;
//        }
//    }
//}
//
//
//public class Test {
//    public static void main(String[] args) {
//        Student[] students = new Student[3];
//        students[0] = new Student("John", 35, 90);
//        students[1] = new Student("Jane", 31, 94);
//        students[2] = new Student("Jack", 33, 87);
//        if(students[0].compareTo(students[1]) > 0) {
//            System.out.println(students[0].name);
//
//      }
//    }
//}


//class Student implements Comparable<Student> {
//    public String name;
//    public int age;
//    public int score;
//
//    public Student(String name, int age, int score) {
//        this.name = name;
//        this.age = age;
//        this.score = score;
//    }
//
//    @Override
//    public int compareTo(Student o) {//谁调用compareto谁就是this
//        return this.age - o.age;
//    }
//
//    @Override
//    public String toString() {
//        return "Student{" +
//                "name='" + name + '\'' +
//                ", age=" + age +
//                ", score=" + score +
//                '}';
//    }
//}
//
//public class Test {
//    public static void main(String[] args) {
//        Student[] students = new Student[3];
//        students[0] = new Student("John", 35, 90);
//        students[1] = new Student("Jane", 31, 94);
//        students[2] = new Student("Jack", 33, 87);
//        Arrays.sort(students);
//        System.out.println(Arrays.toString(students));
//    }
//}


//class Student {
//    public String name;
//    public int age;
//    public int score;
//
//    public Student(String name, int age, int score) {
//        this.name = name;
//        this.age = age;
//        this.score = score;
//    }
//
//    @Override
//    public String toString() {
//        return "Student{" +
//                "name='" + name + '\'' +
//                ", age=" + age +
//                ", score=" + score +
//                '}';
//    }
//}
//
//class AgeComparator implements Comparator<Student> {
//
//    @Override
//    public int compare(Student o1, Student o2) {
//        return o1.age - o2.age;
//    }
//}
//
//class ScoreComparator implements Comparator<Student> {
//
//    @Override
//    public int compare(Student o1, Student o2) {
//        return o1.score - o2.score;
//    }
//}
//
//class NameComparator implements Comparator<Student> {
//
//    @Override
//    public int compare(Student o1, Student o2) {
//        return o1.name.compareTo(o2.name);
//    }
//}
//
//public class Test {
//    public static void main(String[] args) {
//        Student[] students = new Student[3];
//        students[0] = new Student("John", 35, 90);
//        students[1] = new Student("Jane", 31, 94);
//        students[2] = new Student("Jack", 33, 87);
//        AgeComparator ageComparator = new AgeComparator();//比较器
//        ScoreComparator scoreComparator = new ScoreComparator();//比较器
//        Comparator<Student> nameComparator = new NameComparator();//比较器
//        Arrays.sort(students, ageComparator);
//        System.out.println(Arrays.toString(students));
//        Arrays.sort(students, scoreComparator);
//        System.out.println(Arrays.toString(students));
//        Arrays.sort(students, nameComparator);
//        System.out.println(Arrays.toString(students));
//    }
//}






























